package com.qingxin.sys.support;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import com.qingxin.sys.entity.LoginUser;

public class SystemCfg {
	
	/**
	 * 保持登录信息的session名
	 */
	public static final String SESSION_LOGIN_USERID = "SESSION_LOGIN_USERID";
	
	
	/** UI数据类型：园区 */
	public static final String UI_DATATYPE_PARK = "PARK";
	/** UI数据类型：地块 */
	public static final String UI_DATATYPE_BLOCK = "BLOCK";

	
	/**
	 * 用户是否系统超级管理员，即不受操作权限限制
	 * @param loginUser
	 * @return
	 */
	public static boolean isSystemAdminUser(LoginUser loginUser){
		if(loginUser == null){
			return false;
		}
		if("M".equalsIgnoreCase(loginUser.getUser_type())){
			return true;
		}
		return false;
	}
	
	
	/**
	 * 用户是否超级管理员，即不受操作权限限制（特定权限受限）
	 * @param loginUser
	 * @return
	 */
	public static boolean isAdminUser(LoginUser loginUser){
		if(loginUser == null){
			return false;
		}
		if("0".equals(loginUser.getUser_type())){
			return true;
		}
		return false;
	}
	
	/**
	 * 用户是否可以查看所有园区数据，即不受数据权限限制
	 * @param loginUser
	 * @return
	 */
	public static boolean isDataAdminUser(LoginUser loginUser){
		if(loginUser == null){
			return false;
		}
		if("0".equals(loginUser.getUser_type()) || "1".equals(loginUser.getUser_type())){
			return true;
		}
		return false;
	}
	
	
	//配置文件[sys.properties]
	private static Properties sysProperties;
	//加载配置文件
	private static void load(){
		if(sysProperties != null){
			return;
		}
		sysProperties = new Properties();
		synchronized (sysProperties) {
			try {
				InputStream in = SystemCfg.class.getResourceAsStream("/sys.properties");
				BufferedReader reader = new BufferedReader(new InputStreamReader(in, "UTF-8"));
				sysProperties.load(reader);
				in.close();
				reader.close();
			} catch (Exception e) {
				throw new RuntimeException(e);
			}
		}
	}
	
	/**
	 * 获取指定配置
	 * @param key
	 * @return
	 */
	public static String getProp(String key) {
		load();
		return sysProperties.getProperty(key);
	}

	/**
	 * 获取指定配置
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static String getProp(String key, String defaultValue) {
		load();
		return sysProperties.getProperty(key, defaultValue);
	}
	
}
